package com.fh.service.building.bill;

import com.fh.dao.DaoSupport;
import com.fh.entity.Page;
import com.fh.util.CodeConstants;
import com.fh.util.DateUtil;
import com.fh.util.PageData;
import com.fh.util.StringHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;


@Service("billService")
public class BillService {

	public String  symbol="￥";

	@Resource(name = "daoSupport")
	private DaoSupport dao;
	
	/*
	* 新增
	*/
	public void save(PageData pd)throws Exception{
		dao.save("BillMapper.save", pd);
	}
	/*
	* 创建新账单 如果房间存在合同 就在合同中增加账单 如果不存在合同 添加无合同账单
	*/
	public List<PageData> isHaveContract(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.isHaveContract", pd);
	}
	/*
	* 新增付款
	*/
	public void savebillpay(PageData pd)throws Exception{
		dao.save("BillMapper.savebillpay", pd);
	}
	/*
	* 退租结清 付款后 修改 合同状态
	*/
	public void UPCON(PageData pd)throws Exception{
		dao.save("BillMapper.UPCON", pd);
	}
	/*
	* 批量 新增付款
	*/
	public void savebillpayALL(List<PageData> list)throws Exception{
		dao.save("BillMapper.savebillpayALL", list);
	}
	/*
	* 修改
	*/
	public void billedit(PageData pd)throws Exception{
		dao.update("BillMapper.billedit", pd);
	}
	/*
	* 批量收款 修改账单
	*/
	public void editbillpayALL(List<String> pd)throws Exception{
		dao.update("BillMapper.editbillpayALL", pd);
	}
	/*
	* 审批事项 审核
	*/
	public void shenhebill(PageData pd)throws Exception{
		dao.update("BillMapper.shenhebill", pd);
	}
	/*
	* 账单 未支付 list
	*/
	public List<PageData> list(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPage", page);
	}
	/*
	* 账单 未支付 listAll
	*/
	public List<PageData> listAll(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPage", page);
	}
	/*
	* 账单 代办 审核 list
	*/
	public List<PageData> billshenhelist(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageshenhe", page);
	}
	/*
	* 账单 代办 消息数据
	*/
	public List<PageData> billshenhelistXX(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.shenheXX", pd);
	}
	/*
	* 返回费用管理 -审批账单  账单审核列表
	*/
	public List<PageData> billshenpi(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageshenpi", page);
	}
	/*
	* 账单 已支付 list
	*/
	public List<PageData> listPayOk(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPagePayOk", page);
	}
	/*
	* 账单 应付 list
	*/
	public List<PageData> listyingfu(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageyingfu", page);
	}
	/*
	* 账单 未来 list
	*/
	public List<PageData> listPayNext(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPagePayNext", page);
	}
	/*
	* 账单 逾期 list
	*/
	public List<PageData> listPayyuqi(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageyuqi", page);
	}
	/*
	* 账单逾期扫描列表
	*/
	public Object billyuqimessage()throws Exception{
		return dao.findForList("BillMapper.billyuqimessage", "");
	}
	/*
	* 账单 自用 list
	*/
	public List<PageData> listPayziyong(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageziyong", page);
	}
	/*
	 * 账单 自用 具体的房间 的 自用 list
	 */
	public List<PageData> listPayziyongRoom(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageziyongRoom", page);
	}
	/*
	* 账单 流水明细 收入
	*/
	public List<PageData> listshouru(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageshouru", page);
	}
	/*
	* 账单 交易明细
	*/
	public List<PageData> listjymx(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPagejymx", page);
	}
	/*
	* 账单 收入预算
	*/
	public List<PageData> listshouruyusuan(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPageshouruyusuan", page);
	}
	/*
	* 账单 退租结算
	*/
	public List<PageData> listtzjs(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPagetzjs", page);
	}
	/*
	*根据合同id 查找 账单信息
	*/
	public List<PageData> listBill(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.listBill", pd);
	}
	/*
	*根据账单id 查找实际支付信息
	*/
	public List<PageData> listbilljson(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.listbilljson", pd);
	}


	/*
	* 审核账单
	*/
	public void check(PageData pd)throws Exception{
		dao.update("BillMapper.check", pd);
	}
	/*
	* 修改
	*/
	public void edit(PageData pd)throws Exception{
		dao.update("BillMapper.edit", pd);
	}
	/*
	 * 通过账单ID获取账单信息
	 */
	public PageData findById(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.findById", pd);
	}
	/*
	* 添加付款信息  并修改账单状态
	*/
	public void editbillpay(PageData pd)throws Exception{
		dao.update("BillMapper.editbillpay", pd);
	}

	/*
	*
	*/
	public List<PageData> findByBuildingId(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findByBuildingId", pd);
	}

	public PageData getBill(String id,String userId,String contractId,double price,String billType,String days,String tenantId,String hydropowerId,String unitPrice){
		PageData bill = new PageData();
		bill.put("ID",id);
		bill.put("CREATE_ID",userId);
		bill.put("CREATE_DATE", DateUtil.getTime());
		bill.put("SORT",0);
		bill.put("IS_DEL",0);
		bill.put("TENANT_ID",tenantId);
		bill.put("CONTRACT_ID",contractId);
		bill.put("START_DATE",DateUtil.getLastMonthDate());
		bill.put("PAY_DATE",days==null?DateUtil.getDay():DateUtil.getAfterDayDate(days));
		bill.put("END_DATE",DateUtil.getDay());
		bill.put("TOTAL_PRICE",price);
		bill.put("PRICE_TYPE","0");//收入
		bill.put("BILL_TYPE",billType);//存储账单类型
		if("a14e6f2e190e4492badac72e9b42152e".equals(billType)){
			bill.put("BILL_NAME","水费");//存储账单类型
		}else if("ddcf9b35bbe04cd88834e21c1fd74f32".equals(billType)){
			bill.put("BILL_NAME","电费");//存储账单类型
		}
		//bill.put("BILL_NAME",billType);//存储账单类型
		bill.put("STATE", CodeConstants.PAYMENT_WAIT);
		bill.put("HYDROPOWER_ID",hydropowerId);
		bill.put("UNIT_PRICE",unitPrice);
		return bill;
	}

	public PageData getBillNew(PageData contractInfo,List<PageData> hydroInfo,double totalPrice,String id,String userId,String billType,double unitPrice,String allotBill,String state,double LATE_FEE){
		PageData bill = new PageData();
		String tenantId = "";
		String contractId = "";
		String days = "0";
		String hydropowerId = "";
		if (contractInfo != null) {
			if (contractInfo.containsKey("PERSON_ID")) {
				tenantId = contractInfo.getString("PERSON_ID");
			}
			if (contractInfo.containsKey("ID")) {
				contractId = contractInfo.getString("ID");
			}
			if (contractInfo.containsKey("CHARGE_DATE") && StringHelper.isNotEmpty(contractInfo.getString("CHARGE_DATE"))) {
				days = contractInfo.getString("CHARGE_DATE");
			}
			if (contractInfo.containsKey("HYDRO_ID")) {
				hydropowerId = contractInfo.getString("HYDRO_ID");
			}
		}
		bill.put("ID",id);
		bill.put("CREATE_ID",userId);
		bill.put("CREATE_DATE", DateUtil.getTime());
		bill.put("UPDATE_DATE", DateUtil.getTime());
		bill.put("SORT",0);
		bill.put("IS_DEL",0);
		bill.put("TENANT_ID",tenantId);
		bill.put("CONTRACT_ID",contractId);
		bill.put("START_DATE",DateUtil.getLastMonthDate());
		bill.put("PAY_DATE",days==null?DateUtil.getDay():DateUtil.getAfterDayDate(days));
		bill.put("END_DATE",DateUtil.getDay());
		bill.put("TOTAL_PRICE",totalPrice);
		bill.put("BILL_TYPE",billType);//存储账单类型
		if("a14e6f2e190e4492badac72e9b42152e".equals(billType)){
			bill.put("BILL_NAME","水费");//存储账单类型
		}else if("ddcf9b35bbe04cd88834e21c1fd74f32".equals(billType)){
			bill.put("BILL_NAME","电费");//存储账单类型
		}
		//bill.put("BILL_NAME",billType);//存储账单类型
		bill.put("STATE", state);
		bill.put("HYDROPOWER_ID",hydropowerId);
		bill.put("PRICE_TYPE",0);//收入
		bill.put("UNIT_PRICE",unitPrice);
		bill.put("ALLOT_BILL",allotBill);
		bill.put("CHECK_STATE","01");//水电表的生成 都需要审核
		bill.put("MAKE_BILL_TYPE",1);
		bill.put("LATE_FEE",LATE_FEE);//滞纳金
		return bill;
	}

	/* =============================== 代收 start ================================== */

	/*
	 * 查找需要发送提醒和代收费的账单
	 */
	public List<PageData> findMsgAndChargeBill(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findMsgAndChargeBill", pd);
	}

	/* =============================== 代收  end  ================================== */

	/* ===============================app账单接口================================== */

	/*
	*根据合同id 查找 账单信息
	*/
	public List<PageData> billdetail(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.billdetail", pd);
	}

	/*
	 *根据id 查找 贷款账单信息
	 */
	public List<PageData> billdetail_loan(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.billdetail_loan", pd);
	}


	/*
	*根据合同id 查找 账单信息(批量)
	*/
	public List<PageData> billdetaillist(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.billdetaillist", pd);
	}

	/*
	 *根据合同id 查找 贷款账单信息(批量)
	 */
	public List<PageData> billdetaillist_loan(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.billdetaillist_loan", pd);
	}

	/*
	 *根据合同id 查找 账单信息(批量)
	 */

	public PageData billdetaillistsum(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.billdetaillistsum", pd);
	}

	/*
	 *根据app贷款总金额
	 */

	public PageData billdetaillistsum_loan(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.billdetaillistsum_loan", pd);
	}

	/*
	 *根据账单id 查找 滞纳金
	 */

	public PageData billdetaillistLate(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.billdetaillistLate", pd);
	}

	/*
	 *贷款账单 滞纳金
	 */

	public PageData billdetaillistLate_loan(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.billdetaillistLate_loan", pd);
	}

	/*
	* 根据租客的状态，时间，商圈DI查询账单信息
	*/
	public List<PageData> findBillAll(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.datalistPagefindBillAll", page);
	}


	/*
	*查询租务的审批合同（全部）
	*/
/*	public List<PageData> findRentalAll1(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findRentalAll1", pd);
	}*/


	/*
	*查询租务的审批合同（全部）
	*/
	public List<PageData> findRentalAll1(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.shenpiht", pd);
	}


	/*
	*查询租务的审批账单信息（全部）
	*/
	public List<PageData> findRentalAll2(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findRentalAll2", pd);
	}

	/*
	*查询租务总收入信息（全部）
	*/
	public List<PageData> AllPriceIn(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.AllPriceIn", pd);
	}

	/*
	*查询租务总支出信息（全部）
	*/
	public List<PageData> AllPriceOut(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.AllPriceOut", pd);
	}
	/*
	*查询租务总商圈数信息（全部）
	*/
	public List<PageData> Allbusiness(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.Allbusiness", pd);
	}

	/*
	*查询租务总楼宇数数信息（全部）
	*/
	public List<PageData> Allbuilding(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.Allbuilding", pd);
	}

	/*
	*查询租务总房间数数信息（全部）
	*/

	public List<PageData> Allroom(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.Allroom", pd);
	}

	/*
	*查询租务总空置房间数信息（全部）
	*/

	public List<PageData> Allvacancy(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.Allvacancy", pd);
	}

	/*
	*财务流水
	*/

	public PageData findFlow_detail1(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.findFlow_detail1", pd);
	}


	/*
	*财务流水
	*/
	public PageData findFlow_detail2(PageData pd)throws Exception{
		return (PageData)dao.findForObject("BillMapper.findFlow_detail2", pd);
	}


	/*
	*财务流水（账单明细）
	*/
	public List<PageData> findFlow_detail4(Page page)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.finddatalistPageFlow_detail4", page);
	}

/*===================================================*/

	/*
	*财务数据（应收已收）
	*/
	public List<PageData> findBillprice(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillprice", pd);
	}


	/*
	*财务数据（应收已收）
	*/
	public List<PageData> findBillAllYS(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillAllYS", pd);
	}



	/*
	*财务数据（应收）
	*/
	public List<PageData> findBillsumprice(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillsumprice", pd);
	}

	/*
	*财务数据（现金总收入）
	*/
	public List<PageData> findBillcashincome(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillcashincome", pd);
	}

	/*
	*财务数据（租金收入）
	*/
	public List<PageData> findBillrent(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillrent", pd);
	}

	/*
    *财务数据（押金收入）
    */
	public List<PageData> findBilldespoit(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBilldespoit", pd);
	}

	/*
    *财务数据（杂费收入）
      */
	public List<PageData> findBillother(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillother", pd);
	}

	/*
    *财务数据（水费收入）
    */
	public List<PageData> findBillwater(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillwater", pd);
	}


	/*
    *财务数据（电费收入）
    */
	public List<PageData> findBillelectric(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillelectric", pd);
	}

	/*
     *财务数据（网费收入）
     */
	public List<PageData> findBillnet(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillnet", pd);
	}


	/*
     *财务数据（现金总支出）
     */
	public List<PageData> findBillexpend(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillexpend", pd);
	}

	/*
     *财务数据（租金总支出）
     */
	public List<PageData> findBillrentout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillrentout", pd);
	}

	/*
     *财务数据（押金总支出）
     */
	public List<PageData> findBilldespoitout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBilldespoitout", pd);
	}

	/*
     *财务数据（杂费总支出）
     */
	public List<PageData> findBillotherout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillotherout", pd);
	}


	/*
    *财务数据（水费支出）
   */
	public List<PageData> findBillwaterout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillwaterout", pd);
	}

	/*
     *财务数据（电费支出）
     */
	public List<PageData> findBillelectricout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillelectricout", pd);
	}


	/*
     *财务数据（网费支出）
     */
	public List<PageData> findBillnetout(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillnetout", pd);
	}

	/*
    *财务数据（预计现金总收入）
    */
	public List<PageData> findBillAllPriceIn(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findBillAllPriceIn", pd);
	}


	/*
    *财务数据（查询全部项目类型名称）
    */
	public List<PageData> findPropertyAll(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findPropertyAll", pd);
	}


	/*
    *财务数据（通过项目名称查询总价(收入)）
    */
	public List<PageData> findPropertyPrice(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findPropertyPrice", pd);
	}


	/*
    *财务数据（通过项目名称查询总价（支出））
    */
	public List<PageData> findPropertyPriceOut(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findPropertyPriceOut", pd);
	}

/*======================================================*/


	/*
	*财务报表
	*/
	public List<PageData> Operation(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.Operation", pd);
	}
	/*
	*财务报表
	*/
	public List<PageData> totalRoom(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.totalRoom", pd);
	}
	/*
	*退租商户
	*/
	public List<PageData> outRoom(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.outRoom", pd);
	}
	/*
	*总账单数
	*/
	public List<PageData> allBill(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.allBill", pd);
	}
	/*
	*应收款账单数
	*/
	public List<PageData> RECE_NUM(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.RECE_NUM", pd);
	}
	/*
	*逾期账单 数
	*/
	public List<PageData> OVER_NUM(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.billyuqimessage", pd);
	}

	/*
	 *逾期贷款账单 数
	 */
	public List<PageData> OVER_BILL_LOAN(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.OVER_BILL_LOAN", pd);
	}

	/*
	*逾期账单 数
	*/
	public List<PageData> COLLECT_NUM(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.COLLECT_NUM", pd);
	}

/*==============================*/
	/*
	*待处理账单 数
	*/
	public List<PageData> OVER_NUMOUT(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.OVER_NUMOUT", pd);
	}

	/*
        *到期合同 数
        */
	public List<PageData> CONTRACT_NUM(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.CONTRACT_NUM", pd);
	}

	/*
	 *到期贷款合同 数
	 */
	public List<PageData> CONTRACT_LOAN(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.CONTRACT_LOAN", pd);
	}


	/*
	*待处理合同 数
	*/
	public List<PageData> CONTRACT_NUMOUT(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.CONTRACT_NUMOUT", pd);
	}


	/*
	*状态接口（账单/合同）
	*/
	public List<PageData> findbill_contracttype(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findbill_contracttype", pd);
	}


	public List<PageData> findlistPageSellCards(Page page) throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findlistPageSellCards", page);
	}

	public List<PageData> findlistPageInterim(Page page) throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.findlistPageInterim", page);
	}

    public List<PageData> findByOPEN_IDAllBill(PageData pd)  throws Exception{

		List<PageData> list = new ArrayList<PageData>();
		PageData pageData = new PageData();
		String dataTime="";
		String type="";
		List<PageData> forList = (List<PageData>) dao.findForList("BillMapper.findByOPEN_IDAllBill", pd);
		for (int i = 0; i <forList.size() ; i++) {
			PageData data=forList.get(i);

			if(!dataTime.equals(data.getString("TITLE_TIME"))  &&  pageData.size()!=0  && type.equals("0")){
				list.add(pageData);
			}


			if(data.containsKey("PRICE_TYPE")){
					//判断 上一个数据的时间和当的时间是否相同
				  if(dataTime.equals(data.getString("TITLE_TIME"))){

					  dataTime=data.getString("TITLE_TIME");
					  type=data.getString("PRICE_TYPE");
					  pageData.put("FU_TOTAL_PRICE",data.get("TOTAL_PRICE"));

					  double fu = Double.parseDouble(data.get("TOTAL_PRICE").toString());


					  double shou = Double.parseDouble(pageData.get("SHOU_TOTAL_PRICE").toString());
					  double TOTAL_PRICE = shou-fu;
					  pageData.put("TOTAL_PRICE",TOTAL_PRICE);

					  list.add(pageData);
				  }else{
					  //判断 存的时间是否是第一次 ，如果第一次存 一个时间的数据 直接

					  if("1".equals( data.getString("PRICE_TYPE"))){
						  pageData.put("FU_TOTAL_PRICE",pageData.get("TOTAL_PRICE"));
						  pageData.put("TOTAL_PRICE","-"+symbol+pageData.get("TOTAL_PRICE"));
						  pageData.put("SHOU_TOTAL_PRICE","");
						  list.add(pageData);
					  }else{
						  dataTime=data.getString("TITLE_TIME");
						  type=data.getString("PRICE_TYPE");

						  pageData=data;
						  pageData.put("SHOU_TOTAL_PRICE",pageData.get("TOTAL_PRICE"));
						  pageData.put("FU_TOTAL_PRICE","");

						  if(forList.size()==i+1){
							  list.add(pageData);
						  }
					  }

				  }
			  }

		}

		return list;
    }

	public List<PageData> findByOPEN_IDAllDayBill(PageData pd) throws Exception{
		List<PageData> forList = (List<PageData>) dao.findForList("BillMapper.findByOPEN_IDAllDayBill", pd);
		return forList;
	}

	public PageData findbyBill(PageData pd) throws Exception{
		return (PageData)dao.findForObject("BillMapper.findbyBill", pd);
	}

	public List<PageData> findByOPEN_IDWUYEALLBill(PageData pd) throws Exception{
		List<PageData> forList = (List<PageData>) dao.findForList("BillMapper.findByOPEN_IDWUYEALLBill", pd);
		//返回数据
		List<PageData> listaLL= new ArrayList<PageData>();
		//存放每月list得数
		List<PageData> list= new ArrayList<PageData>();
		//存放月统计
		PageData dataFu = new PageData();

		//存放 每月list得数 和 每月统计数据
		PageData datapd = new PageData();

		PageData pageData = new PageData();
		double priceNUM=0.0;
		String  dataTime="";
		for (int i = 0; i < forList.size(); i++) {
			PageData data = forList.get(i);
			//第一次遍历数据
			if(i==0){
				pageData=data;
				priceNUM=Double.parseDouble(data.get("TOTAL_PRICE").toString());
				dataTime=data.getString("DATE_YUE");
				list.add(data);
			}else{
				//如果当前月份和上次 数据 月份相同
				if(pageData.getString("DATE_YUE").equals(data.getString("DATE_YUE"))){
					priceNUM+=Double.parseDouble(data.get("TOTAL_PRICE").toString());
					list.add(data);
				}else{
					//如果当前月份和上次 数据 月份不相同
					  //得到上一次的 存每月统计
					dataFu.put("DATE_YUE",dataTime);
					dataFu.put("priceNUM",priceNUM);
					datapd.put("DATA_TITAL",dataFu);
					datapd.put("list",list);
					listaLL.add(datapd);
					list=new ArrayList<PageData>();
					datapd=new PageData();
					dataFu=new PageData();
					pageData=data;
					priceNUM=Double.parseDouble(data.get("TOTAL_PRICE").toString());
					dataTime=data.getString("DATE_YUE");
					list.add(data);
				}
			}

			if(forList.size()==i+1){
				dataFu.put("DATE_YUE",dataTime);
				dataFu.put("priceNUM",priceNUM);
				datapd.put("DATA_TITAL",dataFu);
				datapd.put("list",list);
				listaLL.add(datapd);
			}

		}

			return listaLL;
	}

	public List<PageData> findWUYWDetil(PageData pd) throws Exception{
		return (List<PageData>) dao.findForList("BillMapper.findWUYWDetil", pd);

	}

	public List<PageData> findOverdueBill(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("BillMapper.findOverdueBill", pd);
	}

	public List<PageData> findExpiredReminding(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("BillMapper.findExpiredReminding", pd);
	}

	public List<PageData> findDiesCedit(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("BillMapper.findDiesCedit", pd);
	}

	public List<PageData> findChargeReminding(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("BillMapper.findChargeReminding", pd);
	}


	/*=================================================短信通知service开始========================================*/

	/*
	 * 账单 未支付 list
	 */
	public List<PageData> pay_reminder_day(PageData pd)throws Exception{
		return (List<PageData>)dao.findForList("BillMapper.pay_reminder_day", pd);
	}

    public List<PageData> findLateFee(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("BillMapper.findLateFee", pd);
    }

	public List<PageData> findMeterReadingDay(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("BillMapper.findMeterReadingDay", pd);
	}
	public List<PageData> findBillCheck(PageData pd) throws Exception {
		return (List<PageData>)dao.findForList("BillMapper.findBillCheck", pd);
	}

	/*
	 * 账单逾期扫描列表
	 */
//	public Object billyuqimessage()throws Exception{
//		return dao.findForList("BillMapper.billyuqimessage", "");
//	}

	/*=================================================短信通知service结束========================================*/
}

